From bd4b0a4f9db4a792bd9f73c764bdaac584fc6ad4 Mon Sep 17 00:00:00 2001 From: "kaf24@firebug.cl.cam.ac.uk" Date: Tue, 2 May 2006 15:33:47 +0100 Subject: [PATCH] This patch conditionalizes some output from perfc_printall(), thus making relevant information more compact and easier legible. It additionally changes the formatting so that trailing spaces are avoided. Also changing the type of some variables from plain int to unsigned int, as that is yielding more efficient code on x86-64 (signed 32-bit array indices require explicit sign extension, whereas in most cases an extra copy can be avoided when the index type is unsigned, since all 32-bit operations already zero-extend their results). Signed-off-by: Jan Beulich --- xen/common/perfc.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/xen/common/perfc.c b/xen/common/perfc.c index 7e54c980fe..df63c1042b 100644 --- a/xen/common/perfc.c +++ b/xen/common/perfc.c @@ -37,7 +37,7 @@ struct perfcounter perfcounters; void perfc_printall(unsigned char key) { - int i, j, sum; + unsigned int i, j, sum; s_time_t now = NOW(); atomic_t *counters = (atomic_t *)&perfcounters; @@ -59,22 +59,28 @@ void perfc_printall(unsigned char key) sum = 0; for_each_online_cpu ( j ) sum += atomic_read(&counters[j]); - printk("TOTAL[%10d] ", sum); - for_each_online_cpu ( j ) - printk("CPU%02d[%10d] ", j, atomic_read(&counters[j])); + printk("TOTAL[%10u]", sum); + if (sum) + { + for_each_online_cpu ( j ) + printk(" CPU%02d[%10d]", j, atomic_read(&counters[j])); + } counters += NR_CPUS; break; case TYPE_ARRAY: case TYPE_S_ARRAY: for ( j = sum = 0; j < perfc_info[i].nr_elements; j++ ) sum += atomic_read(&counters[j]); - printk("TOTAL[%10d] ", sum); + printk("TOTAL[%10u]", sum); #ifdef PERF_ARRAYS - for ( j = 0; j < perfc_info[i].nr_elements; j++ ) + if (sum) { - if ( (j != 0) && ((j % 4) == 0) ) - printk("\n "); - printk("ARR%02d[%10d] ", j, atomic_read(&counters[j])); + for ( j = 0; j < perfc_info[i].nr_elements; j++ ) + { + if ( (j % 4) == 0 ) + printk("\n "); + printk(" ARR%02d[%10d]", j, atomic_read(&counters[j])); + } } #endif counters += j; @@ -90,7 +96,7 @@ void perfc_printall(unsigned char key) void perfc_reset(unsigned char key) { - int i, j; + unsigned int i, j; s_time_t now = NOW(); atomic_t *counters = (atomic_t *)&perfcounters; -- 2.30.2